#ifndef HASH_H_JM_20120826
#define HASH_H_JM_20120826

namespace jmlib {
	/**
	* Rozhranie pre objekt poskytujuci hashovaciu funkciu pre hashovaciu tavulku 
	* {@link HashTableCore}.
	* 
	* @tparam T typ hashovanych hodnot
	**/
	template<class T>
	class Hash {
	public:
		/**
		* Typ hashovanych prvkov.
		**/
		typedef T HashType;

		/**
		* Hashovacia funkcia.
		* @param value hashovana hodnota
		**/
		virtual size_t operator()( HashType value) const = 0;

	private:
	};
} // namespace jmlib

#endif
